accbf2b484f7f1d54b5bb5e5145850faace5afa5
[openwrt/openwrt.git] /
1 From 47f754b3f838205f3b25c4839f74801d180995bf Mon Sep 17 00:00:00 2001
2 From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
3 Date: Tue, 22 Oct 2024 20:20:26 +0300
4 Subject: [PATCH] wifi: rtw88: Report the signal strength only if it's known
5
6 RTL8811CU doesn't report the signal strength for many (any?) data
7 frames. When the signal strength is not known, set
8 RX_FLAG_NO_SIGNAL_VAL in order to avoid reporting a signal
9 strength of 0.
10
11 Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
12 Acked-by: Ping-Ke Shih <pkshih@realtek.com>
13 Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
14 Link: https://patch.msgid.link/f7e1e448-2c9b-498f-b8b1-a14dd967d7d3@gmail.com
15 ---
16 drivers/net/wireless/realtek/rtw88/rx.c | 12 ++++++++----
17 1 file changed, 8 insertions(+), 4 deletions(-)
18
19 --- a/drivers/net/wireless/realtek/rtw88/rx.c
20 +++ b/drivers/net/wireless/realtek/rtw88/rx.c
21 @@ -234,10 +234,14 @@ static void rtw_rx_fill_rx_status(struct
22 else
23 rx_status->bw = RATE_INFO_BW_20;
24
25 - rx_status->signal = pkt_stat->signal_power;
26 - for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
27 - rx_status->chains |= BIT(path);
28 - rx_status->chain_signal[path] = pkt_stat->rx_power[path];
29 + if (pkt_stat->phy_status) {
30 + rx_status->signal = pkt_stat->signal_power;
31 + for (path = 0; path < rtwdev->hal.rf_path_num; path++) {
32 + rx_status->chains |= BIT(path);
33 + rx_status->chain_signal[path] = pkt_stat->rx_power[path];
34 + }
35 + } else {
36 + rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
37 }
38
39 rtw_rx_addr_match(rtwdev, pkt_stat, hdr);